
package Modelo;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;

public class Validaciones {
   
    public static String getFechaActual() 
      {
         Date ahora = new Date();
         SimpleDateFormat formateador = new SimpleDateFormat("dd/MM/yyyy");
         return formateador.format(ahora);
       }  
    
    public static String fechaFormateada(Date fechaAux)
    {
        SimpleDateFormat formateador = new SimpleDateFormat("dd/MM/yyyy");
        return formateador.format(fechaAux);
    }

    public static long ConvIntFecha(Date fecha)
    {
        
        long conversion = (long)(fecha.getTime());
        return conversion;
    }
    public static boolean isDate(String fechax)
    {
        try 
        {
            SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
            formatoFecha.setLenient(false);
            formatoFecha.parse(fechax);
            return true;
        } catch (ParseException e) 
        {
         return false;
        }
   }
    
    public static Date CnvStringFecha(String fecha)
   {
       SimpleDateFormat formato = new SimpleDateFormat("dd/MM/yyyy");
       Date fechaDate = null;
       try {
           fechaDate = formato.parse(fecha);
       }
       catch (ParseException ex)
       {
           System.out.println(ex);
       }
       return fechaDate;
   }
   //--------------------------------
     public static int Generar_Aleatorio(int limite) 
      { 
         return (int) (Math.random()*limite+1)-1;
      }

   public static Date sumarFechasDias(Date fch, int dias) 
   {
        /*Calendar cal = new GregorianCalendar();
        cal.setTimeInMillis(fch.getTime());
        cal.add(Calendar.DATE, dias);
        return new Date(cal.getTimeInMillis());*/

       Calendar cal = Calendar.getInstance();
       cal.setTime(fch);
       cal.add(Calendar.DAY_OF_YEAR, dias);
       return cal.getTime();
    }
   
   public static int diferenciaDeFechas(Date fechaInicio, Date fechaFinal)
   {
       DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM);
       
       String fechaInicioString = df.format(fechaInicio);
       try{
           fechaInicio = df.parse(fechaInicioString);
       }catch(ParseException ex){
       }
       
        String fechaFinalString = df.format(fechaFinal);
       try{
           fechaFinal = df.parse(fechaFinalString);
       }catch(ParseException ex){
       }
       
       long fechaInicioMs = fechaInicio.getTime();
       long fechaFinalMs = fechaFinal.getTime();
       long difenrencia = fechaFinalMs - fechaInicioMs;
       double dias = Math.floor(difenrencia/(1000*60*60*24));
       
       return ((int)dias);
   }
   
   public static Date buscarFechaMenor(Date fecha1, Date fecha2)
   {
       Date fechaMenor;

            if (fecha1.compareTo(fecha2) >= 0)
            {
                fechaMenor= fecha2;
            }
            else
            {
                fechaMenor= fecha1;
            }

        return fechaMenor;
   }   
   
    public static Date buscarFechaMayor(Date fecha1, Date fecha2)
    {
        Date fechaMayor;

        if (fecha1.compareTo(fecha2) <= 0)
        {
            fechaMayor= fecha2;
        }
        else
        {
            fechaMayor= fecha1;
        }
        return fechaMayor;
    } 
    

}  //FIN
